
#pragma once

#include <iostream>
using namespace std;

#include "Functor.h"
#include "GlobalTypes.h"


class Application
{
	SINGLETON(Application);
public:
	Delegate<float, float> touchDownDelegate;
	Delegate<float, float> touchMoveDelegate;
	Delegate<float, float> touchUpDelegate;
	Delegate<> updateDelegate;
	Delegate<> drawDelegate;
	Delegate<> setupDelegate;

	void onTouchDown(float x, float y);
	void onTouchMove(float x, float y);
	void onTouchUp(float x, float y);
	void update();
	void draw();

private:
	Application() {}
};